/***************************************************************
|	File:		Vertex.h
|	Author:		Michael Mozdzierz
|	Date:		05/24/2014
|
***************************************************************/

#pragma once

#include "../Math/Vector2.h"
#include "../Math/Vector3.h"
#include "Color.h"
#include <d3d9.h>


#define VPC_FORMAT (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)
#define VPT_FORMAT (D3DFVF_XYZRHW | D3DFVF_TEX0)


struct VertexPositionColor
{
	Vector3 position;
	
	Color color;

	

	VertexPositionColor(void);
	VertexPositionColor(Vector3& position, Color& color);
	~VertexPositionColor(void);
};

struct VertexPositionTexture
{
	Vector3 position;

	Vector2 texCoord;

	VertexPositionTexture(void);
	VertexPositionTexture(Vector3& position, Vector2 texCoord);
	~VertexPositionTexture(void);
};

struct VertexPositionNormalTextureColor
{
	Vector3 position = Vector3::Zero;
	Vector3 normal = Vector3::Zero;

	Vector2 texCoord = Vector2::Zero;

	Color color = Color::White;

	VertexPositionNormalTextureColor(void);
	VertexPositionNormalTextureColor(Vector3& position, Vector3& normal, Vector2& texCoord, Color& color);
	~VertexPositionNormalTextureColor(void);
};